package com.practice.J2E.Test;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.thread.ThreadUtil;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.function.Function;

/**
 * desc
 *
 * @author: kayn
 * 2025-01-10 10:28
 **/
public class ATest {

    public static void main(String[] args) {

        LocalDateTime dateTime = LocalDateTime.now();
        ThreadUtil.safeSleep(10);
        LocalDateTime dateTime1 = LocalDateTime.now();
        ThreadUtil.safeSleep(10);
        LocalDateTime dateTime2 = LocalDateTime.now();
        LocalDateTime dateTime3 = null;
        LocalDateTime dateTime4 = LocalDateTime.now();
        LocalDateTime dateTime5 = null;
        LocalDateTime dateTime6 = LocalDateTime.now();
        LocalDateTime dateTime7 = LocalDateTime.now();

        ArrayList<LocalDateTime> localDateTimes = CollUtil.newArrayList(dateTime,dateTime1, dateTime2, dateTime3,dateTime4,dateTime5,dateTime6,dateTime7);
        List<LocalDateTime> list = localDateTimes.stream().sorted(ATest::com).toList();
        System.out.println(list);
    }

    /**
     * LocalDateTime比较器，null作为升序最大值
     * @param o1 1
     * @param o2 1
     * @return 1
     */
    public static int com(LocalDateTime o1, LocalDateTime o2) {
        if (null == o2) {
            return -1;
        }
        if (null == o1){
            return 1;
        }
        return o1.compareTo(o2);
    }
}
